fix(cron): restore interactive sessions and label scheduled turns - #1579
Open
Open-Squilla wants to merge 4 commits into
Open
fix(cron): restore interactive sessions and label scheduled turns#1579Open-Squilla wants to merge 4 commits into
Open-Squilla wants to merge 4 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Automation runs remain conversations: users can ask follow-up questions in a scheduled run's session and retain its context. Revert #1547's read-only composer and shared turn-admission rejection, then make the public
interactivefield agree with that restored behavior.Scheduled agent prompts and replies now persist their Cron source through the existing transcript provenance fields. The WebUI labels automatic prompts as “Scheduled trigger” and scheduled replies as “Scheduled”; manual follow-ups keep their ordinary appearance. Labels survive history reload and Gateway restart, for both current-session and isolated execution.
Scope boundary: the rollback, session interactivity contract, scheduled message provenance, and synthetic regression coverage. A separate test-only commit fixes successful-compaction fixtures that exceeded their tiny token budget under the optional-tokenizer fallback.
Non-goals: changing scheduler target selection, sidebar grouping, adding a related-automation navigation entry, or changing permissions and session owner fencing.
Compatibility: #1547 merged after v0.5.4. The rollback restores the preceding behavior without an upgrade shim. Provenance uses existing optional RPC/database fields, requires no migration, and does not rewrite older history. Session ids/epochs and the current-versus-isolated execution policy are preserved. These changes are platform-neutral.
Branch
Base branch: main
Target exception: N/A
Issue
Linked issue: Refs #1547
Release Note
Release note: Restore follow-up conversations in automation sessions and identify scheduled prompts and replies in chat history.
Tests
Ruff: passed for changed non-generated Python files.
Pytest:
Frontend: 81 source-label/component/rendering unit tests passed. 17 Chromium history-hydration and queue/steer tests passed against the built artifact, including labels after reload, unlabelled manual follow-ups, and the editable automation composer.
Build:
npm run buildpassed, including types, architecture, localization, theme, runtime bundle, and staged-artifact verification.Contracts:
python scripts/contracts/generate_gateway_contracts.py --checkpassed with the pinned toolchain.Regression tests: added. Coverage includes SQLite reopen, exact-owner rejection after reset, current-session execution without duplicate forwarding, legacy and per-run Cron interactivity, and durable labels in both kinds of conversation.
Notes: the local checks are targeted; the full repository suite, Windows runtime, Linux runtime, and desktop installers were not run locally. Earlier CI also encountered HTTP 504 downloads for Electron/toolchain artifacts; those infrastructure failures were diagnosed separately from the compaction fixture failures. GitNexus and direct diff inspection verified the intended scope against upstream main. The shared finalizer/rendering paths carry broad impact, covered here by ordinary follow-up, paused-turn, and owner-reset checks. The default test path remains offline, deterministic, credential-free, and safe for forks.
Maintainer Live Check
Maintainer live check: yes
Surface: gateway
Verified the final implementation on macOS using a separate Gateway with persistent test state, its built WebUI, and real provider calls. No browser network interception or fake provider responses were used for this check.
interactive: true.Safety
No secrets, local-only artifacts, private prompts/transcripts, channel identifiers, or AI session notes are committed. Permissions, scheduler routing, and durable owner fencing are preserved.
Third-Party Origin
Third-party origin: none
Documentation Changes
N/A — no documentation files changed.